In today's business climate it is critical to integrate business processes over the entire business enterprise. This is relatively easy in the situation where all information is accessible to those in the enterprise working on a local areal network (LAN). However, where information is distributed over many remote locations, the ability to support disconnected users of the enterprise information becomes more difficult. Thus, in distributed systems such as office automation, CAD, manufacturing control and the like, the units of work are very long and complex compared to classical transactions.
Classical transactions are limited to defined as atomic, consistent, isolated and durable "ACID"!. To achieve such transactions in the context of an enterprises database systems, the work must comprise only a few data items that have a short residence time. In such systems The commitment to changing the enterprise database is delayed so that the data involved in the transaction is locked for the duration of the transaction. The implementation of such measures in a long-lived business environment is unacceptable because the duration of the transaction must be short since extending the locking of the data would seriously impact the efficiency of the database. In business critical applications such locking would be extremely detrimental.
The ACID transaction properties are advantageously used in inventory control, banking and reservation systems. The fundamental drawback of the traditional transaction system is the assumption that the transaction is concurrent and completely unrelated to the units of work. Consequently, any existing interrelations between individual transactions cannot be implemented by the system, but have to be handled by the application. In long-lived transaction, it is typical to have an internal structure that has to be maintained by the system. The requirement of atomicity in the traditional system requires that such requirement not be modeled as a transaction, but typical database systems do not have any other means for handling that.
ACID transactions control concurrency by isolating atomic transitions against each other to create a serializable schedule by delaying updates until the commit of transaction. This resolution is not acceptable to long lived transactions because of performance degradation caused by holding long locks that have the effect of blocking other activities and the creation of transaction abortions due to deadlock and conflicts.
Various models have been proposed to deal with implementation of the long lived transaction, especially in the business context. One interesting model is the ConTract Model proposed by Andreas Reuter, ConTacts: A means for Extending Control Beyond Transaction Boundaries. Proc. 3rd Int. Workshop on High Performance Transaction Systems, Asilomar, September 1989. See also, Andreas Reuter and Helmut Wachter!. While the models proposed address the problems associated with prior art transactional systems, they fail to provide a method for implementing the model for use in business critical applications.
Accordingly, it is an object of the present invention to provide a system for long lived transactions that reflect business process and business event activities. It is a further object of the invention to provide a method for implementing long-lived transactions which encapsulate business process rules and which provides the transaction with embedded historical data. It is an object of the invention to provide business process rules in a transactional primitive which can encapsulate specific data for off-line operations. It is a object of the invention to provide a system that permits forward recovery to undo changes made to a database and which provides for undoing multiple transactions or compensating transactions. It is also an object of the invention to provide crash recovery and conflict detection as well as to provide a framework in which to resolve such conflicts. Finally, it is an object of the invention to provide a system that facilitates the distribution of computing across a distributed and disconnected Wide Area Network ("WAN").